unit uFrmPrincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sCalculator, ExtCtrls, Menus, sHintManager, sSkinManager,
  sSkinProvider, ImgList, StdCtrls, sComboBox, sLabel, sBevel, Buttons,
  sSpeedButton, sPanel, ComCtrls, sStatusBar, jpeg, uConexao, uMensagemConstante, uMensagensSistema;

type
  TfrmPrincipal = class(TForm)
    imgBackground: TImage;
    sStatusBar: TsStatusBar;
    ImageList: TImageList;
    sSkinProvider: TsSkinProvider;
    sHintManager: TsHintManager;
    MainMenu: TMainMenu;
    mSistema: TMenuItem;
    mSairSistema: TMenuItem;
    mCadastro: TMenuItem;
    Timer: TTimer;
    sCalculator: TsCalculator;
    mProduto: TMenuItem;
    mManutencaoProduto: TMenuItem;
    mGrupoProduto: TMenuItem;
    mOperacoes: TMenuItem;
    mImpEtiqueta: TMenuItem;
    mRelatrios: TMenuItem;
    mListagemdeProdutos: TMenuItem;
    procedure FormShow(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure mGrupoProdutoClick(Sender: TObject);
    procedure mSairSistemaClick(Sender: TObject);
    procedure mListagemdeProdutosClick(Sender: TObject);
    procedure mManutencaoProdutoClick(Sender: TObject);
    procedure mImpEtiquetaClick(Sender: TObject);
  private
    conexao  : TConexao;
    logout   : Boolean;
    { Private declarations }
    procedure recuperaConexao;
    procedure abrirBrowseGrupoProduto;
    procedure abrirBrowserProduto;
    procedure abrirRelListagemProduto;
    procedure abrirConfImpEtiqueta;

  public
    { Public declarations }
    procedure atualizabarra;

  end;

var
  frmPrincipal: TfrmPrincipal;

implementation

uses
  uConstantesSistema, uConfiguracao, uDmUniSQLConexao, uFrmProduto,
  uFrmGrupoProduto, uFrmRelListarProduto, uFrmImpEtiqueta, uFrmConfImpEtiqueta;
{$R *.dfm}

procedure TfrmPrincipal.abrirBrowseGrupoProduto;
begin
   try
      Application.CreateForm(TfrmGrupoProduto,frmGrupoProduto);
      frmGrupoProduto.ShowModal;
   finally
      if Assigned(frmGrupoProduto) then
        FreeAndNil(frmGrupoProduto);
   end;
end;

procedure TfrmPrincipal.abrirRelListagemProduto;
begin
   try
      Application.CreateForm(TfrmRelListagemProduto,frmRelListagemProduto);
      frmRelListagemProduto.qrListagemProduto.Preview;
   finally
      if assigned(frmRelListagemProduto) then
       FreeAndNil(frmRelListagemProduto);
   end;
end;

procedure TfrmPrincipal.abrirBrowserProduto;
begin
   try
      Application.CreateForm(TfrmProduto,frmProduto);
      frmProduto.ShowModal;
   finally
      if assigned(frmProduto) then
       FreeAndNil(frmProduto);
   end;
end;

procedure TfrmPrincipal.abrirConfImpEtiqueta;
begin
   try
      Application.CreateForm(TfrmConfImpEtiqueta,frmConfImpEtiqueta);
      frmConfImpEtiqueta.ShowModal;
   finally
      if assigned(frmConfImpEtiqueta) then
       FreeAndNil(frmConfImpEtiqueta);
   end;
end;

procedure TfrmPrincipal.atualizabarra;
begin
  if assigned(conexao) and Not (logout) then
  begin
     sStatusBar.Panels.Items[1].Text := UpperCase(conexao.servidor);
     sStatusBar.Panels.Items[3].Text := UpperCase(conexao.banco);
     sStatusBar.Panels.Items[5].Text := 'Mestre';
  end
  else
  begin
     sStatusBar.Panels.Items[1].Text := '';
     sStatusBar.Panels.Items[3].Text := '';
     sStatusBar.Panels.Items[5].Text := '';
  end;
  sStatusBar.Panels.Items[7].Text := DateToStr(now());
  sStatusBar.Panels.Items[9].Text := TimeToStr(now());
end;

procedure TfrmPrincipal.FormActivate(Sender: TObject);
begin
  atualizabarra;
end;

procedure TfrmPrincipal.FormCreate(Sender: TObject);
begin
  Application.CreateForm(TdmUniSQLConexao, dmUniSQLConexao);
end;

procedure TfrmPrincipal.FormShow(Sender: TObject);
begin
  recuperaConexao;
end;

procedure TfrmPrincipal.mImpEtiquetaClick(Sender: TObject);
begin
  abrirConfImpEtiqueta;
end;

procedure TfrmPrincipal.mGrupoProdutoClick(Sender: TObject);
begin
  abrirBrowseGrupoProduto;
end;

procedure TfrmPrincipal.mListagemdeProdutosClick(Sender: TObject);
begin
  abrirRelListagemProduto;
end;

procedure TfrmPrincipal.mManutencaoProdutoClick(Sender: TObject);
begin
  abrirBrowserProduto;
end;

procedure TfrmPrincipal.mSairSistemaClick(Sender: TObject);
begin
  if MensagemPergunta(MsgDesejaSairDoSistema) = ID_YES then
  begin
    self.Close;
    frmPrincipal.Close;
  end;
end;

procedure TfrmPrincipal.recuperaConexao;
begin
  conexao := Configuracao.BancoDeDados.retornarConexao();
end;

procedure TfrmPrincipal.TimerTimer(Sender: TObject);
begin
  atualizabarra;
end;


end.
